home *** CD-ROM | disk | FTP | other *** search
- package treeview;
-
- import java.applet.Applet;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.Rectangle;
- import java.awt.Scrollbar;
-
- public class TreeView extends Panel implements ImageSetSource {
- protected int m_nLabelOffset;
- protected ImageSet m_isImages;
- protected ImageSet m_isConnectors;
- protected TreeViewNode m_tvnRoot;
- protected boolean m_bLayoutComplete;
- protected boolean m_bUseButtons;
- protected boolean m_bUseLines;
- protected boolean m_bRootsConnected;
- protected Applet m_applet;
- protected TreeViewNode m_tvnCurrentSelection;
- protected Image m_imgDoubleBuffer;
- protected Rectangle m_rectDisplayArea;
- protected Scrollbar m_sbHorizontal;
- protected Scrollbar m_sbVertical;
- protected Button m_btnScrollerCorner;
- protected int m_nInsetX;
- protected int m_nInsetY;
- protected int m_nConnectorWidth;
- protected int m_nIndent;
- protected int m_nIconWidth;
- protected int m_nIconHeight;
- protected int m_nCellHeight;
- protected int m_nFontBaseOffset;
- private boolean m_bNetscapeScrollers;
- private boolean m_bLayedOutByMouseOver;
- private boolean m_bCompletelyFilled;
- private int m_nHorizPosPixels;
- private int m_nVerticalPosPixels;
- private int m_nImageWidth;
- private int m_nImageHeight;
- public static final int LEAF = 0;
- public static final int BRANCH_COLLAPSED = 1;
- public static final int BRANCH_EXPANDED = 2;
- public static final int LEAF_SELECTED = 3;
- public static final int BRANCH_COLLAPSED_SELECTED = 4;
- public static final int BRANCH_EXPANDED_SELECTED = 5;
- public static final int MIN_NUMBER_IMAGES = 3;
- public static final int MIN_NUMBER_IMAGES_SELECTED = 6;
- protected static final int HEIGHT_HORIZONTAL_SB = 16;
- protected static final int WIDTH_VERTICAL_SB = 16;
- protected static final int ICON_VERTICAL_PADDING = 1;
- protected static final long c_lnDoubleClickWindow = 500L;
- private boolean m_bIsNS3Win32;
- private boolean m_bIsNSWin16;
- private boolean m_bIsUnix;
- private long m_lnLastClickTime;
- private boolean m_bIsMac;
-
- protected TreeViewNode nodeAtLocation(int var1, int var2) {
- if (!this.m_rectDisplayArea.inside(var1, var2)) {
- return null;
- } else {
- int var3 = var2 + this.m_nVerticalPosPixels;
-
- for(TreeViewNode var4 = this.m_tvnRoot; var4 != null; var4 = var4.nextNode(true)) {
- Rectangle var5 = var4.getBounds();
- if (var3 > var5.y && var3 <= var5.y + var5.height && var4.getLabel() != null) {
- return var4;
- }
- }
-
- return null;
- }
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- if (!this.m_bLayoutComplete) {
- this.layout();
- }
-
- if (this.m_applet != null) {
- TreeViewNode var4 = this.nodeAtLocation(var2, var3);
- if (var4 != null && this.m_bCompletelyFilled) {
- this.m_applet.showStatus(var4.getLabel());
- }
- }
-
- return false;
- }
-
- protected int getMaxWidth(TreeViewNode var1, int var2, boolean var3) {
- int var4 = 0;
-
- for(TreeViewNode var5 = var1; var5 != null; var5 = (TreeViewNode)((SiblingChildTree)var5).getSibling()) {
- if (var5.getWidth() + var2 > var4) {
- var4 = var5.getWidth() + var2;
- }
-
- if (!var3 || !var5.getCollapsedState()) {
- int var6 = this.getMaxWidth((TreeViewNode)((SiblingChildTree)var5).getChild(), var2 + this.m_nIndent, var3);
- if (var6 > var4) {
- var4 = var6;
- }
- }
- }
-
- return var4;
- }
-
- public int getLabelOffset() {
- return this.m_nLabelOffset;
- }
-
- public void setLabelOffset(int var1) {
- this.m_nLabelOffset = var1;
- }
-
- protected void sizeNode(TreeViewNode var1) {
- if (var1 != null) {
- FontMetrics var2 = ((Component)this).getFontMetrics(((Component)this).getFont());
- int var3 = 0;
- if (this.m_bUseButtons || this.m_bUseLines) {
- var3 = this.m_nIconWidth;
- }
-
- if (var1.getCurrentImage() != null) {
- var3 += this.m_nIconWidth + this.m_nLabelOffset;
- }
-
- if (var1.getLabel() != null) {
- var3 += var2.stringWidth(var1.getLabel());
- } else if (var1.getCurrentImage() != null) {
- var3 -= this.m_nLabelOffset;
- }
-
- var1.setBounds(0, 0, var3, this.m_nCellHeight);
- }
- }
-
- public TreeViewNode nextNode(boolean var1) {
- try {
- return (TreeViewNode)this.m_tvnRoot.prevNode();
- } catch (NullPointerException var2) {
- return null;
- }
- }
-
- public TreeViewNode previousNode(boolean var1) {
- try {
- return (TreeViewNode)this.m_tvnRoot.prevNode();
- } catch (NullPointerException var2) {
- return null;
- }
- }
-
- public void expandAll() {
- try {
- this.m_tvnRoot.expandTree();
- } catch (NullPointerException var1) {
- }
- }
-
- public void update(Graphics var1) {
- if (!this.m_bLayoutComplete) {
- this.layout();
- }
-
- this.paint(var1);
- }
-
- protected void sizeTree(TreeViewNode var1) {
- for(TreeViewNode var2 = var1; var2 != null; var2 = (TreeViewNode)((SiblingChildTree)var2).getSibling()) {
- this.sizeNode(var2);
- this.sizeTree((TreeViewNode)((SiblingChildTree)var2).getChild());
- }
-
- }
-
- protected void setSelectionToTop() {
- if (this.m_tvnCurrentSelection != null) {
- this.m_tvnCurrentSelection.select(false);
- }
-
- for(this.m_tvnCurrentSelection = this.m_tvnRoot; this.m_tvnCurrentSelection != null && this.m_tvnCurrentSelection.getLabel() == null; this.m_tvnCurrentSelection = this.m_tvnCurrentSelection.nextNode(true)) {
- }
-
- if (this.m_tvnCurrentSelection != null) {
- this.m_tvnCurrentSelection.select(true);
- }
-
- }
-
- public int getCellHeight() {
- return this.m_nCellHeight;
- }
-
- public void setCellHeight(int var1) {
- if (var1 < this.m_nIconHeight + 1) {
- this.m_nCellHeight = this.m_nIconHeight + 1;
- } else {
- this.m_nCellHeight = var1;
- }
- }
-
- public int getXInset() {
- return this.m_nInsetX;
- }
-
- public void setXInset(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- }
-
- public synchronized void layout() {
- this.m_bLayoutComplete = false;
- this.m_rectDisplayArea.reshape(0, 0, ((Component)this).bounds().width, ((Component)this).bounds().height);
- if (this.m_rectDisplayArea.width >= 1 && this.m_rectDisplayArea.height >= 1) {
- try {
- this.sizeTree(this.m_tvnRoot);
- int var1 = this.getMaxWidth(this.m_tvnRoot, 0, true);
- int var2 = this.getMaxHeight(this.m_tvnRoot, 0, true) / this.m_nCellHeight - 1;
- if (var2 >= 1) {
- if (var1 + 1 > this.m_rectDisplayArea.width) {
- Rectangle var10000 = this.m_rectDisplayArea;
- var10000.height -= 16;
- }
-
- int var3 = this.m_rectDisplayArea.height / this.m_nCellHeight;
- if (var2 > var3) {
- Rectangle var5 = this.m_rectDisplayArea;
- var5.width -= 16;
- }
-
- this.rods_reshape(this.m_sbHorizontal, 0, this.m_rectDisplayArea.height, this.m_rectDisplayArea.width, 16);
- this.m_sbHorizontal.setValues(this.m_nHorizPosPixels, this.m_rectDisplayArea.width, 0, var1 - (this.m_bNetscapeScrollers ? this.m_rectDisplayArea.width : 0));
- this.rods_reshape(this.m_sbVertical, this.m_rectDisplayArea.width, 0, 16, this.m_rectDisplayArea.height);
- this.m_sbVertical.setValues(this.m_nVerticalPosPixels / this.m_nCellHeight, var3, 0, var2 - (this.m_bNetscapeScrollers ? var3 : 1));
- this.rods_reshape(this.m_btnScrollerCorner, this.m_rectDisplayArea.width, this.m_rectDisplayArea.height, 16, 16);
- if (this.m_rectDisplayArea.height < 0) {
- this.m_rectDisplayArea.height = 0;
- }
-
- if (this.m_rectDisplayArea.width < 0) {
- this.m_rectDisplayArea.width = 0;
- }
-
- if (this.m_imgDoubleBuffer != null && (this.m_nImageWidth != this.m_rectDisplayArea.width || this.m_nImageHeight != this.m_rectDisplayArea.height)) {
- this.m_imgDoubleBuffer.flush();
- this.m_imgDoubleBuffer = null;
- }
-
- if (this.m_imgDoubleBuffer == null) {
- this.m_imgDoubleBuffer = ((Component)this).createImage(this.m_rectDisplayArea.width, this.m_rectDisplayArea.height);
- this.m_nImageWidth = this.m_rectDisplayArea.width;
- this.m_nImageHeight = this.m_rectDisplayArea.height;
- }
-
- this.m_bLayoutComplete = true;
- }
- } catch (Exception var4) {
- this.m_imgDoubleBuffer = null;
- }
- }
- }
-
- public int getIconWidth() {
- return this.m_nIconWidth;
- }
-
- public void setIconWidth(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- this.m_nIconWidth = var1;
- }
-
- public ImageSet getConnectors() {
- return this.m_isConnectors;
- }
-
- public void setConnectors(ImageSet var1) {
- this.m_isConnectors = var1;
- }
-
- protected void toggleOpenCloseNode(TreeViewNode var1) {
- var1.setCollapsedState(!var1.getCollapsedState());
- if (var1.getCollapsedState()) {
- this.m_tvnCurrentSelection.select(false);
-
- for(TreeViewNode var2 = (TreeViewNode)this.m_tvnCurrentSelection.getParent(); var2 != null; var2 = (TreeViewNode)((SiblingChildTree)var2).getParent()) {
- if (var2.getCollapsedState()) {
- this.m_tvnCurrentSelection = var2;
- }
- }
-
- this.m_tvnCurrentSelection.select(true);
- int var5 = this.getMaxHeight(this.m_tvnRoot, 0, true) / this.m_nCellHeight - 1;
- int var3 = this.m_rectDisplayArea.height / this.m_nCellHeight;
- int var4 = this.m_nVerticalPosPixels / this.m_nCellHeight;
- if (var4 + var3 > var5) {
- var4 = Math.max(var5 - var3, 0);
- }
-
- this.m_nVerticalPosPixels = var4 * this.m_nCellHeight;
- }
-
- }
-
- public TreeViewNode nextVisibleNode() {
- try {
- return this.m_tvnRoot.nextNode(true);
- } catch (NullPointerException var1) {
- return null;
- }
- }
-
- public TreeViewNode previousVisibleNode() {
- try {
- return this.m_tvnRoot.prevNode(true);
- } catch (NullPointerException var1) {
- return null;
- }
- }
-
- protected int getMaxHeight(TreeViewNode var1, int var2, boolean var3) {
- int var4 = var2;
-
- for(TreeViewNode var5 = var1; var5 != null; var5 = (TreeViewNode)((SiblingChildTree)var5).getSibling()) {
- var4 += var5.getHeight();
- if (!var3 || !var5.getCollapsedState()) {
- var4 = this.getMaxHeight((TreeViewNode)((SiblingChildTree)var5).getChild(), var4, var3);
- }
- }
-
- return var4;
- }
-
- public int getYInset() {
- return this.m_nInsetY;
- }
-
- public void setFilled(boolean var1) {
- this.m_bCompletelyFilled = var1;
- this.m_bLayoutComplete = false;
- ((Component)this).repaint();
- }
-
- public void setYInset(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- if (this.m_applet != null && this.m_bCompletelyFilled) {
- this.m_applet.showStatus("");
- }
-
- return false;
- }
-
- public void setApplet(Applet var1) {
- this.m_applet = var1;
- }
-
- public void paint(Graphics var1) {
- if (!this.m_bLayoutComplete) {
- this.layout();
- }
-
- if (this.m_imgDoubleBuffer != null) {
- if (this.m_bIsNS3Win32) {
- var1.dispose();
- }
-
- Graphics var2 = this.m_imgDoubleBuffer.getGraphics();
- var2.setFont(((Component)this).getFont());
- var2.setColor(((Component)this).getBackground());
- var2.fillRect(0, 0, ((Component)this).bounds().width, ((Component)this).bounds().height);
- var2.setColor(((Component)this).getForeground());
- var2.translate(-this.m_nHorizPosPixels, -this.m_nVerticalPosPixels);
-
- try {
- this.paintTree(var2, this.m_tvnRoot, this.m_nInsetX, this.m_nInsetY);
- } catch (NullPointerException var3) {
- }
-
- var2.dispose();
- var2 = this.m_imgDoubleBuffer.getGraphics();
- this.paintBorder(var2);
- if (this.m_bIsNS3Win32) {
- var2.dispose();
- var1 = ((Component)this).getGraphics();
- }
-
- var1.drawImage(this.m_imgDoubleBuffer, 0, 0, this);
- }
- }
-
- protected void paintNode(Graphics var1, TreeViewNode var2, int var3, int var4) {
- var2.moveBounds(var3, var4);
- var3 = this.drawConnector(var1, var2, var3, var4);
- if (var2.getCurrentImage() != null) {
- var1.drawImage(var2.getCurrentImage(), var3, var4 + 1, this.m_nIconWidth, this.m_nIconHeight, this);
- var3 += this.m_nIconWidth + this.m_nLabelOffset;
- }
-
- if (var2.getLabel() != null) {
- this.drawText(var1, var2, var3, var4);
- }
-
- }
-
- protected void rods_reshape(Component var1, int var2, int var3, int var4, int var5) {
- var1.move(var2, var3);
- var1.resize(var4, var5);
- }
-
- public boolean getUseLines() {
- return this.m_bUseLines;
- }
-
- public TreeViewNode getRoot() {
- return this.m_tvnRoot;
- }
-
- public void setRoot(TreeViewNode var1) {
- this.m_tvnRoot = var1;
- this.setSelectionToTop();
- }
-
- public void setUseLines(boolean var1) {
- this.m_bUseLines = var1;
- }
-
- protected int drawConnector(Graphics var1, TreeViewNode var2, int var3, int var4) {
- if (this.m_bUseButtons && this.m_bUseLines) {
- Image var17 = null;
- Object var6 = null;
-
- try {
- if (((SiblingChildTree)var2).getChild() != null) {
- if (var2.getCollapsedState()) {
- var17 = this.m_isConnectors.getImage(5);
- } else {
- var17 = this.m_isConnectors.getImage(6);
- }
- }
- } catch (IndexOutOfBoundsException var11) {
- var17 = null;
- } catch (NullPointerException var12) {
- var17 = null;
- }
-
- try {
- if (((SiblingChildTree)var2).getParent() == null) {
- if (this.m_bRootsConnected) {
- if (((SiblingChildTree)var2).getSiblingLeft() == null) {
- if (((SiblingChildTree)var2).getSibling() == null) {
- var18 = this.m_isConnectors.getImage(1);
- } else {
- var18 = this.m_isConnectors.getImage(2);
- }
- } else if (((SiblingChildTree)var2).getSibling() == null) {
- var18 = this.m_isConnectors.getImage(4);
- } else {
- var18 = this.m_isConnectors.getImage(3);
- }
- } else {
- var18 = this.m_isConnectors.getImage(1);
- }
- } else if (((SiblingChildTree)var2).getSiblingLeft() == null && ((SiblingChildTree)var2).getParent() != null && ((TreeViewNode)((SiblingChildTree)var2).getParent()).getLabel() == null) {
- var18 = this.m_isConnectors.getImage(2);
- } else if (((SiblingChildTree)var2).getSibling() == null) {
- var18 = this.m_isConnectors.getImage(4);
- } else {
- var18 = this.m_isConnectors.getImage(3);
- }
- } catch (IndexOutOfBoundsException var13) {
- var18 = null;
- } catch (NullPointerException var14) {
- var18 = null;
- }
-
- if (var18 != null) {
- var1.drawImage(var18, var3, var4, this);
- }
-
- if (var17 != null) {
- var1.drawImage(var17, var3, var4, this);
- }
-
- var3 += this.m_nConnectorWidth;
- } else if (this.m_bUseButtons) {
- Image var5 = null;
-
- try {
- if (((SiblingChildTree)var2).getChild() != null) {
- if (var2.getCollapsedState()) {
- var5 = this.m_isConnectors.getImage(5);
- } else {
- var5 = this.m_isConnectors.getImage(6);
- }
- }
- } catch (IndexOutOfBoundsException var9) {
- var5 = null;
- } catch (NullPointerException var10) {
- var5 = null;
- }
-
- if (var5 != null) {
- var1.drawImage(var5, var3, var4, this);
- }
-
- var3 += this.m_nConnectorWidth;
- } else if (this.m_bUseLines) {
- Object var15 = null;
-
- try {
- if (((SiblingChildTree)var2).getParent() == null) {
- if (this.m_bRootsConnected) {
- if (((SiblingChildTree)var2).getSiblingLeft() == null) {
- if (((SiblingChildTree)var2).getSibling() == null) {
- var16 = this.m_isConnectors.getImage(1);
- } else {
- var16 = this.m_isConnectors.getImage(2);
- }
- } else if (((SiblingChildTree)var2).getSibling() == null) {
- var16 = this.m_isConnectors.getImage(4);
- } else {
- var16 = this.m_isConnectors.getImage(3);
- }
- } else {
- var16 = this.m_isConnectors.getImage(1);
- }
- } else if (((SiblingChildTree)var2).getSibling() == null) {
- var16 = this.m_isConnectors.getImage(4);
- } else {
- var16 = this.m_isConnectors.getImage(3);
- }
- } catch (IndexOutOfBoundsException var7) {
- var16 = null;
- } catch (NullPointerException var8) {
- var16 = null;
- }
-
- if (var16 != null) {
- var1.drawImage(var16, var3, var4, this);
- }
-
- var3 += this.m_nConnectorWidth;
- }
-
- return var3;
- }
-
- protected void paintBorder(Graphics var1) {
- Rectangle var2 = this.m_rectDisplayArea;
- Color var3 = ((Component)this).getBackground();
- Color var4 = var3.darker();
- Color var5 = var4.darker();
- Color var6 = var5.darker();
- var1.setColor(var5);
- var1.drawLine(0, 0, var2.width - 1, 0);
- var1.drawLine(0, 0, 0, var2.height - 1);
- var1.setColor(var6);
- var1.drawLine(1, 1, var2.width - 2, 1);
- var1.drawLine(1, 1, 1, var2.height - 2);
- var1.setColor(var4);
- var1.drawLine(var2.width - 2, 1, var2.width - 2, var2.height - 2);
- var1.drawLine(1, var2.height - 2, var2.width - 2, var2.height - 2);
- var1.setColor(var3);
- var1.drawLine(var2.width - 1, 1, var2.width - 1, var2.height - 1);
- var1.drawLine(0, var2.height - 1, var2.width - 1, var2.height - 1);
- }
-
- public void collapseAll() {
- try {
- this.m_tvnRoot.collapseTree();
- } catch (NullPointerException var1) {
- }
- }
-
- public boolean getUseButtons() {
- return this.m_bUseButtons;
- }
-
- public void setUseButtons(boolean var1) {
- this.m_bUseButtons = var1;
- }
-
- public int getIconHeight() {
- return this.m_nIconHeight;
- }
-
- public void setIconHeight(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- this.m_nIconHeight = var1;
- if (var1 > this.m_nCellHeight - 1) {
- this.m_nCellHeight = var1 + 1;
- }
-
- }
-
- public ImageSet getImages() {
- return this.m_isImages;
- }
-
- public void setImages(ImageSet var1) {
- this.m_isImages = var1;
- }
-
- public int getIndent() {
- return this.m_nIndent;
- }
-
- public void setIndent(int var1) {
- this.m_nIndent = var1;
- }
-
- public boolean getRootsConnected() {
- return this.m_bRootsConnected;
- }
-
- public TreeView() {
- this((ImageSet)null, (TreeViewNode)null);
- }
-
- public TreeView(ImageSet var1) {
- this(var1, (TreeViewNode)null);
- }
-
- public TreeView(TreeViewNode var1) {
- this((ImageSet)null, var1);
- }
-
- public TreeView(ImageSet var1, TreeViewNode var2) {
- this.m_nLabelOffset = 6;
- this.m_bUseButtons = true;
- this.m_bRootsConnected = true;
- this.m_sbHorizontal = new Scrollbar(0);
- this.m_sbVertical = new Scrollbar(1);
- this.m_btnScrollerCorner = new Button();
- this.m_nInsetX = 5;
- this.m_nInsetY = 1;
- this.m_nConnectorWidth = 16;
- this.m_nIndent = 7 + this.m_nConnectorWidth;
- this.m_nIconWidth = 20;
- this.m_nIconHeight = 16;
- this.m_nCellHeight = this.m_nIconHeight + 1;
- this.m_nFontBaseOffset = this.m_nIconHeight;
-
- try {
- if (System.getProperty("java.vendor").startsWith("Netscape")) {
- if (System.getProperty("java.version").startsWith("1.0") && System.getProperty("os.name").startsWith("Windows") && System.getProperty("os.version").startsWith("4")) {
- this.m_bIsNS3Win32 = true;
- } else if (System.getProperty("os.name").startsWith("16-bit Windows")) {
- this.m_bIsNSWin16 = true;
- }
- }
- } finally {
- ;
- }
-
- this.m_tvnRoot = var2;
- this.m_isImages = var1;
- this.m_isConnectors = new TreeViewConnectorImageSet();
- this.m_imgDoubleBuffer = null;
- this.m_rectDisplayArea = new Rectangle();
- ((Container)this).setLayout((LayoutManager)null);
-
- try {
- String var3 = System.getProperty("os.name");
- if (!var3.startsWith("Windows")) {
- this.m_bIsMac = var3.startsWith("Mac");
- this.m_bIsUnix = !this.m_bIsMac;
- }
- } finally {
- ;
- }
-
- int var15 = WebHelp.GetFontSize();
- ((Component)this).setFont(new Font(WebHelp.GetFontName(), 0, var15));
- FontMetrics var4 = ((Component)this).getFontMetrics(((Component)this).getFont());
- int var5 = var4.getLeading() + var4.getAscent() + var4.getDescent();
- this.setCellHeight(var5);
- if (var5 < this.m_nCellHeight) {
- this.m_nFontBaseOffset = (this.m_nCellHeight + var5) / 2 - var4.getDescent();
- } else {
- this.m_nFontBaseOffset = this.m_nCellHeight - var4.getDescent();
- }
-
- this.setSelectionToTop();
- Scrollbar var6 = new Scrollbar();
- var6.setValues(0, 3, 0, 10);
- var6.setValue(10);
- this.m_bNetscapeScrollers = var6.getValue() == 10;
- this.m_sbHorizontal.setLineIncrement(16);
- if (this.m_sbHorizontal.getPageIncrement() < 128) {
- this.m_sbHorizontal.setPageIncrement(128);
- }
-
- this.m_sbHorizontal.setBackground(new Color(192, 192, 192));
- ((Container)this).add(this.m_sbHorizontal);
- this.m_sbVertical.setBackground(new Color(192, 192, 192));
- ((Container)this).add(this.m_sbVertical);
- this.m_btnScrollerCorner.enable(false);
- ((Container)this).add(this.m_btnScrollerCorner);
- }
-
- public void setRootsConnected(boolean var1) {
- this.m_bRootsConnected = var1;
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 501:
- if (this.m_rectDisplayArea.inside(var1.x, var1.y)) {
- int var2 = var1.x + this.m_nHorizPosPixels;
- byte var3 = 11;
- TreeViewNode var4 = this.nodeAtLocation(var1.x, var1.y);
- if (var4 != null) {
- boolean var5 = !this.m_bIsMac && var1.clickCount % 2 == 0;
- if (this.m_bIsUnix || this.m_bIsMac || this.m_bIsNSWin16) {
- long var6 = System.currentTimeMillis();
- if (this.m_lnLastClickTime > var6 - 500L) {
- var5 = true;
- this.m_lnLastClickTime = 0L;
- } else {
- this.m_lnLastClickTime = var6;
- }
- }
-
- if (this.m_bIsMac && !var5) {
- var1.clickCount = 1;
- }
-
- if (((SiblingChildTree)var4).getChild() != null && var2 > var4.getBounds().x && (var2 < var4.getBounds().x + var3 || var5)) {
- ((Component)this).requestFocus();
- if (this.m_tvnCurrentSelection != null) {
- this.m_tvnCurrentSelection.select(false);
- }
-
- this.m_tvnCurrentSelection = var4;
- this.m_tvnCurrentSelection.select(true);
- var4.doAction();
- this.toggleOpenCloseNode(var4);
- this.layout();
- ((Component)this).requestFocus();
- ((Component)this).repaint();
- } else if (var2 > var4.getBounds().x + var3 && var1.clickCount < 2) {
- if (this.m_tvnCurrentSelection != null) {
- this.m_tvnCurrentSelection.select(false);
- }
-
- this.m_tvnCurrentSelection = var4;
- this.m_tvnCurrentSelection.select(true);
- var4.doAction();
- ((Component)this).repaint();
- }
- }
- }
- break;
- case 601:
- case 602:
- case 603:
- case 604:
- case 605:
- if (var1.target == this.m_sbHorizontal) {
- this.m_nHorizPosPixels = this.m_sbHorizontal.getValue();
- } else if (var1.target == this.m_sbVertical) {
- this.m_nVerticalPosPixels = this.m_sbVertical.getValue() * this.m_nCellHeight;
- }
-
- ((Component)this).repaint();
- }
-
- return super.handleEvent(var1);
- }
-
- protected int paintTree(Graphics var1, TreeViewNode var2, int var3, int var4) {
- for(TreeViewNode var5 = var2; var5 != null; var5 = (TreeViewNode)((SiblingChildTree)var5).getSibling()) {
- int var6 = var3;
- int var7 = var4;
- if (var5.getLabel() != null) {
- this.paintNode(var1, var5, var3, var4);
- var6 = var3 + this.m_nIndent;
- var7 = var4 + this.m_nCellHeight;
- }
-
- if (!var5.getCollapsedState()) {
- var4 = this.paintTree(var1, (TreeViewNode)((SiblingChildTree)var5).getChild(), var6, var7);
- } else {
- var4 = var7;
- }
- }
-
- return var4;
- }
-
- protected void drawText(Graphics var1, TreeViewNode var2, int var3, int var4) {
- var4 += this.m_nFontBaseOffset;
- if (var2.isSelected()) {
- var1.setColor(new Color(0, 0, 128));
- Rectangle var5 = var2.getBounds();
- int var6 = var5.width + var5.x - var3;
- var1.fillRect(var3, var5.y, var6, var5.height);
- var1.setColor(Color.white);
- } else {
- var1.setColor(((Component)this).getForeground());
- }
-
- var1.setFont(((Component)this).getFont());
- var1.drawString(var2.getLabel(), var3, var4);
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- if (!this.m_bLayoutComplete) {
- this.layout();
- }
-
- if (this.m_applet != null) {
- TreeViewNode var4 = this.nodeAtLocation(var2, var3);
- if (var4 != null) {
- if (this.m_bCompletelyFilled) {
- this.m_applet.showStatus(var4.getLabel());
- }
- } else if (this.m_bCompletelyFilled) {
- this.m_applet.showStatus("");
- }
- }
-
- return false;
- }
- }
-